Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Reassignment method</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Reassignment_method"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/mediawiki.page.gallery.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Reassignment_method rootpage-Reassignment_method skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Reassignment method</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>

<p>The <b>method of reassignment</b> is a technique for sharpening a <a href="Time-frequency_representation" class="mw-redirect" title="Time-frequency representation">time-frequency representation</a> (e.g. <a href="Spectrogram" title="Spectrogram">spectrogram</a> or the <a href="Short-time_Fourier_transform" title="Short-time Fourier transform">short-time Fourier transform</a>) by mapping the data to time-frequency coordinates that are nearer to the true <a href="Support_(mathematics)" title="Support (mathematics)">region of support</a> of the analyzed signal. The method has been independently introduced by several parties under various names, including <i>method of reassignment</i>, <i>remapping</i>, <i>time-frequency reassignment</i>, and <i>modified moving-window method</i>.<sup id="cite_ref-hainsworth_1-0" class="reference"><a href="#cite_note-hainsworth-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> The method of reassignment sharpens blurry time-frequency data by relocating the data according to local estimates of instantaneous frequency and group delay. This mapping to reassigned time-frequency coordinates is very precise for signals that are separable in time and frequency with respect to the analysis window.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Introduction">Introduction</h2></div>
<p>Many signals of interest have a distribution of energy that varies in time and frequency. For example, any sound signal having a beginning or an end has an energy distribution that varies in time, and most sounds exhibit considerable variation in both time and frequency over their duration. Time-frequency representations are commonly used to analyze or characterize such signals. They map the one-dimensional time-domain signal into a two-dimensional function of time and frequency. A time-frequency representation describes the variation of spectral energy distribution over time, much as a musical score describes the variation of musical pitch over time.
</p><p>In audio signal analysis, the spectrogram is the most commonly used time-frequency representation, probably because it is well understood, and immune to so-called "cross-terms" that sometimes make other time-frequency representations difficult to interpret. But the windowing operation required in spectrogram computation introduces an unsavory tradeoff between time resolution and frequency resolution, so spectrograms provide a time-frequency representation that is blurred in time, in frequency, or in both dimensions. The method of time-frequency reassignment is a technique for refocussing time-frequency data in a blurred representation like the spectrogram by mapping the data to time-frequency coordinates that are nearer to the true region of support of the analyzed signal.<sup id="cite_ref-improving_2-0" class="reference"><a href="#cite_note-improving-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="The_spectrogram_as_a_time-frequency_representation">The spectrogram as a time-frequency representation</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Spectrogram" title="Spectrogram">Spectrogram</a></div>
<p>One of the best-known time-frequency representations is the spectrogram, defined as the squared magnitude of the short-time Fourier transform. Though the short-time phase spectrum is known to contain important temporal information about the signal, this information is difficult to interpret, so typically, only the short-time magnitude spectrum is considered in short-time spectral analysis.<sup id="cite_ref-improving_2-1" class="reference"><a href="#cite_note-improving-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>As a time-frequency representation, the spectrogram has relatively poor resolution. Time and frequency resolution are governed by the choice of analysis window and greater concentration in one domain is accompanied by greater smearing in the other.<sup id="cite_ref-improving_2-2" class="reference"><a href="#cite_note-improving-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>A time-frequency representation having improved resolution, relative to the spectrogram, is the <a href="Wigner%E2%80%93Ville_distribution" class="mw-redirect" title="Wigner–Ville distribution">Wigner–Ville distribution</a>, which may be interpreted as a short-time Fourier transform with a window function that is perfectly matched to the signal. The Wigner–Ville distribution is highly concentrated in time and frequency, but it is also highly nonlinear and non-local. Consequently, this
distribution is very sensitive to noise, and generates cross-components that often mask the components of interest, making it difficult to extract useful information concerning the distribution of energy in multi-component signals.<sup id="cite_ref-improving_2-3" class="reference"><a href="#cite_note-improving-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Cohen's_class_distribution_function" class="mw-redirect" title="Cohen's class distribution function">Cohen's class</a> of bilinear time-frequency representations is a class of "smoothed" Wigner–Ville distributions, employing a smoothing kernel that can reduce sensitivity of the distribution to noise and suppresses cross-components, at the expense of smearing the distribution in time and frequency. This smearing causes the distribution to be non-zero in regions where the true Wigner–Ville distribution shows no energy.<sup id="cite_ref-improving_2-4" class="reference"><a href="#cite_note-improving-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>The spectrogram is a member of Cohen's class. It is a smoothed Wigner–Ville distribution with the smoothing kernel equal to the Wigner–Ville distribution of the analysis window. The method of reassignment smooths the Wigner–Ville distribution, but then refocuses the distribution back to the true regions of support of the signal components. The method has been shown to reduce time and frequency smearing of any member of Cohen's class.<sup id="cite_ref-improving_2-5" class="reference"><a href="#cite_note-improving-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
In the case of the reassigned
spectrogram, the short-time phase spectrum is used to
correct the nominal time and frequency coordinates of the
spectral data, and map it back nearer to the true regions of
support of the analyzed signal.
</p>
<div class="mw-heading mw-heading2"><h2 id="The_method_of_reassignment">The method of reassignment</h2></div>
<p>Pioneering work on the method of reassignment was published by Kodera, Gendrin, and de Villedary under the name of <i>Modified Moving Window Method</i>.<sup id="cite_ref-Kodera_4-0" class="reference"><a href="#cite_note-Kodera-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Their technique enhances the resolution in time and frequency of the classical Moving Window Method (equivalent to the spectrogram) by assigning to each data point a new time-frequency coordinate that better-reflects the distribution of energy in the analyzed signal.<sup id="cite_ref-Kodera_4-1" class="reference"><a href="#cite_note-Kodera-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 67">: 67 </span></sup>
</p><p>In the classical moving window method, a time-domain signal, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle x(t)}</annotation>
</semantics>
</math></span><img src="./d54c275db3a1e620737b58e143b0818107fa5f5c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:3.979ex; height:2.843ex;" alt="{\displaystyle x(t)}" loading="lazy"></span> is decomposed into a set of coefficients, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \epsilon (t,\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>ϵ<!-- ϵ --></mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \epsilon (t,\omega )}</annotation>
</semantics>
</math></span><img src="./03710de04b64c693e8a94ee130ea6216e2878a01.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.073ex; height:2.843ex;" alt="{\displaystyle \epsilon (t,\omega )}" loading="lazy"></span>, based on a set of elementary signals, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h_{\omega }(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>h</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>ω<!-- ω --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h_{\omega }(t)}</annotation>
</semantics>
</math></span><img src="./a8b618e54065abc33440278181181003b4d4ce42.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.242ex; height:2.843ex;" alt="{\displaystyle h_{\omega }(t)}" loading="lazy"></span>, defined<sup id="cite_ref-Kodera_4-2" class="reference"><a href="#cite_note-Kodera-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 73">: 73 </span></sup>
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h_{\omega }(t)=h(t)e^{j\omega t}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>h</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>ω<!-- ω --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>j</mi>
<mi>ω<!-- ω --></mi>
<mi>t</mi>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h_{\omega }(t)=h(t)e^{j\omega t}}</annotation>
</semantics>
</math></span><img src="./d86ae6dcc2c80147e105a486f94b9f803e1b4e6e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:15.938ex; height:3.176ex;" alt="{\displaystyle h_{\omega }(t)=h(t)e^{j\omega t}}" loading="lazy"></span></dd></dl>
<p>where <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h(t)}</annotation>
</semantics>
</math></span><img src="./66abbb8ae1d9f30bb529739b109e1e5bbe83c626.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:3.988ex; height:2.843ex;" alt="{\displaystyle h(t)}" loading="lazy"></span> is a (real-valued) lowpass kernel function, like the window function in the short-time Fourier transform. The coefficients in this decomposition are defined
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}\epsilon (t,\omega )&amp;=\int x(\tau )h(t-\tau )e^{-j\omega \left[\tau -t\right]}d\tau \\&amp;=e^{j\omega t}\int x(\tau )h(t-\tau )e^{-j\omega \tau }d\tau \\&amp;=e^{j\omega t}X(t,\omega )\\&amp;=X_{t}(\omega )\\&amp;=M_{t}(\omega )e^{j\phi _{\tau }(\omega )}\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mi>ϵ<!-- ϵ --></mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo>∫<!-- ∫ --></mo>
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo stretchy="false">)</mo>
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>−<!-- − --></mo>
<mi>τ<!-- τ --></mi>
<mo stretchy="false">)</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
<mi>j</mi>
<mi>ω<!-- ω --></mi>
<mrow>
<mo>[</mo>
<mrow>
<mi>τ<!-- τ --></mi>
<mo>−<!-- − --></mo>
<mi>t</mi>
</mrow>
<mo>]</mo>
</mrow>
</mrow>
</msup>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>j</mi>
<mi>ω<!-- ω --></mi>
<mi>t</mi>
</mrow>
</msup>
<mo>∫<!-- ∫ --></mo>
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo stretchy="false">)</mo>
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>−<!-- − --></mo>
<mi>τ<!-- τ --></mi>
<mo stretchy="false">)</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
<mi>j</mi>
<mi>ω<!-- ω --></mi>
<mi>τ<!-- τ --></mi>
</mrow>
</msup>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>j</mi>
<mi>ω<!-- ω --></mi>
<mi>t</mi>
</mrow>
</msup>
<mi>X</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<msub>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>t</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<msub>
<mi>M</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>t</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>j</mi>
<msub>
<mi>ϕ<!-- ϕ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
</msup>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}\epsilon (t,\omega )&amp;=\int x(\tau )h(t-\tau )e^{-j\omega \left[\tau -t\right]}d\tau \\&amp;=e^{j\omega t}\int x(\tau )h(t-\tau )e^{-j\omega \tau }d\tau \\&amp;=e^{j\omega t}X(t,\omega )\\&amp;=X_{t}(\omega )\\&amp;=M_{t}(\omega )e^{j\phi _{\tau }(\omega )}\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./0686dd211d359864ec04b3d1cf7265e6e8bf6cea.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -9.903ex; margin-bottom: -0.268ex; width:36.433ex; height:21.509ex;" alt="{\displaystyle {\begin{aligned}\epsilon (t,\omega )&amp;=\int x(\tau )h(t-\tau )e^{-j\omega \left[\tau -t\right]}d\tau \\&amp;=e^{j\omega t}\int x(\tau )h(t-\tau )e^{-j\omega \tau }d\tau \\&amp;=e^{j\omega t}X(t,\omega )\\&amp;=X_{t}(\omega )\\&amp;=M_{t}(\omega )e^{j\phi _{\tau }(\omega )}\end{aligned}}}" loading="lazy"></span></dd></dl>
<p>where <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle M_{t}(\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>M</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>t</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle M_{t}(\omega )}</annotation>
</semantics>
</math></span><img src="./ad4f885a72637c07a0261e541e63bf8e1d7bc6cd.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.335ex; height:2.843ex;" alt="{\displaystyle M_{t}(\omega )}" loading="lazy"></span> is the magnitude, and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \phi _{\tau }(\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>ϕ<!-- ϕ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \phi _{\tau }(\omega )}</annotation>
</semantics>
</math></span><img src="./c1a0e2b9fb53144eac8359f99f302a56c95d47e6.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.723ex; height:2.843ex;" alt="{\displaystyle \phi _{\tau }(\omega )}" loading="lazy"></span> the phase, of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X_{t}(\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>t</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X_{t}(\omega )}</annotation>
</semantics>
</math></span><img src="./095fb4cba906ebe4ca2881de837e59a9f8f373ee.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.005ex; height:2.843ex;" alt="{\displaystyle X_{t}(\omega )}" loading="lazy"></span>, the Fourier transform of the signal <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle x(t)}</annotation>
</semantics>
</math></span><img src="./d54c275db3a1e620737b58e143b0818107fa5f5c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:3.979ex; height:2.843ex;" alt="{\displaystyle x(t)}" loading="lazy"></span> shifted in time by <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle t}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>t</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle t}</annotation>
</semantics>
</math></span><img src="./65658b7b223af9e1acc877d848888ecdb4466560.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:0.84ex; height:2.009ex;" alt="{\displaystyle t}" loading="lazy"></span> and windowed by <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h(t)}</annotation>
</semantics>
</math></span><img src="./66abbb8ae1d9f30bb529739b109e1e5bbe83c626.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:3.988ex; height:2.843ex;" alt="{\displaystyle h(t)}" loading="lazy"></span>.<sup id="cite_ref-Fitz09_5-0" class="reference"><a href="#cite_note-Fitz09-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 4">: 4 </span></sup>
</p><p><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle x(t)}</annotation>
</semantics>
</math></span><img src="./d54c275db3a1e620737b58e143b0818107fa5f5c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:3.979ex; height:2.843ex;" alt="{\displaystyle x(t)}" loading="lazy"></span> can be reconstructed from the moving window coefficients by<sup id="cite_ref-Fitz09_5-1" class="reference"><a href="#cite_note-Fitz09-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 8">: 8 </span></sup>
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}x(t)&amp;=\iint X_{\tau }(\omega )h_{\omega }^{*}(\tau -t)d\omega d\tau \\&amp;=\iint X_{\tau }(\omega )h(\tau -t)e^{-j\omega \left[\tau -t\right]}d\omega d\tau \\&amp;=\iint M_{\tau }(\omega )e^{j\phi _{\tau }(\omega )}h(\tau -t)e^{-j\omega \left[\tau -t\right]}d\omega d\tau \\&amp;=\iint M_{\tau }(\omega )h(\tau -t)e^{j\left[\phi _{\tau }(\omega )-\omega \tau +\omega t\right]}d\omega d\tau \end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo>∬<!-- ∬ --></mo>
<msub>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<msubsup>
<mi>h</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>ω<!-- ω --></mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mo>∗<!-- ∗ --></mo>
</mrow>
</msubsup>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>−<!-- − --></mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mi>d</mi>
<mi>ω<!-- ω --></mi>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo>∬<!-- ∬ --></mo>
<msub>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>−<!-- − --></mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
<mi>j</mi>
<mi>ω<!-- ω --></mi>
<mrow>
<mo>[</mo>
<mrow>
<mi>τ<!-- τ --></mi>
<mo>−<!-- − --></mo>
<mi>t</mi>
</mrow>
<mo>]</mo>
</mrow>
</mrow>
</msup>
<mi>d</mi>
<mi>ω<!-- ω --></mi>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo>∬<!-- ∬ --></mo>
<msub>
<mi>M</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>j</mi>
<msub>
<mi>ϕ<!-- ϕ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
</msup>
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>−<!-- − --></mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>−<!-- − --></mo>
<mi>j</mi>
<mi>ω<!-- ω --></mi>
<mrow>
<mo>[</mo>
<mrow>
<mi>τ<!-- τ --></mi>
<mo>−<!-- − --></mo>
<mi>t</mi>
</mrow>
<mo>]</mo>
</mrow>
</mrow>
</msup>
<mi>d</mi>
<mi>ω<!-- ω --></mi>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mo>∬<!-- ∬ --></mo>
<msub>
<mi>M</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>−<!-- − --></mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>j</mi>
<mrow>
<mo>[</mo>
<mrow>
<msub>
<mi>ϕ<!-- ϕ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mo>−<!-- − --></mo>
<mi>ω<!-- ω --></mi>
<mi>τ<!-- τ --></mi>
<mo>+</mo>
<mi>ω<!-- ω --></mi>
<mi>t</mi>
</mrow>
<mo>]</mo>
</mrow>
</mrow>
</msup>
<mi>d</mi>
<mi>ω<!-- ω --></mi>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}x(t)&amp;=\iint X_{\tau }(\omega )h_{\omega }^{*}(\tau -t)d\omega d\tau \\&amp;=\iint X_{\tau }(\omega )h(\tau -t)e^{-j\omega \left[\tau -t\right]}d\omega d\tau \\&amp;=\iint M_{\tau }(\omega )e^{j\phi _{\tau }(\omega )}h(\tau -t)e^{-j\omega \left[\tau -t\right]}d\omega d\tau \\&amp;=\iint M_{\tau }(\omega )h(\tau -t)e^{j\left[\phi _{\tau }(\omega )-\omega \tau +\omega t\right]}d\omega d\tau \end{aligned}}}</annotation>
</semantics>
</math></span><img src="./3a7b904c8f4a662be28e55552f2016b5a2c2be4a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -11.005ex; width:45.396ex; height:23.176ex;" alt="{\displaystyle {\begin{aligned}x(t)&amp;=\iint X_{\tau }(\omega )h_{\omega }^{*}(\tau -t)d\omega d\tau \\&amp;=\iint X_{\tau }(\omega )h(\tau -t)e^{-j\omega \left[\tau -t\right]}d\omega d\tau \\&amp;=\iint M_{\tau }(\omega )e^{j\phi _{\tau }(\omega )}h(\tau -t)e^{-j\omega \left[\tau -t\right]}d\omega d\tau \\&amp;=\iint M_{\tau }(\omega )h(\tau -t)e^{j\left[\phi _{\tau }(\omega )-\omega \tau +\omega t\right]}d\omega d\tau \end{aligned}}}" loading="lazy"></span></dd></dl>
<p>For signals having magnitude spectra, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle M(t,\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>M</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle M(t,\omega )}</annotation>
</semantics>
</math></span><img src="./f1a208c2539ee6549c37d92518a006ae90d7a8ce.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:7.571ex; height:2.843ex;" alt="{\displaystyle M(t,\omega )}" loading="lazy"></span>, whose time variation is slow relative to the phase variation, the maximum contribution to the reconstruction integral comes from the vicinity of the point <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle t,\omega }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle t,\omega }</annotation>
</semantics>
</math></span><img src="./60f23b6df828fd04f8623aaad24e68d00ce8df63.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.319ex; height:2.343ex;" alt="{\displaystyle t,\omega }" loading="lazy"></span> satisfying the phase stationarity condition<sup id="cite_ref-Kodera_4-3" class="reference"><a href="#cite_note-Kodera-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 74">: 74 </span></sup>
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}{\frac {\partial }{\partial \omega }}\left[\phi _{\tau }(\omega )-\omega \tau +\omega t\right]&amp;=0\\{\frac {\partial }{\partial \tau }}\left[\phi _{\tau }(\omega )-\omega \tau +\omega t\right]&amp;=0\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>ω<!-- ω --></mi>
</mrow>
</mfrac>
</mrow>
<mrow>
<mo>[</mo>
<mrow>
<msub>
<mi>ϕ<!-- ϕ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mo>−<!-- − --></mo>
<mi>ω<!-- ω --></mi>
<mi>τ<!-- τ --></mi>
<mo>+</mo>
<mi>ω<!-- ω --></mi>
<mi>t</mi>
</mrow>
<mo>]</mo>
</mrow>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mn>0</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>τ<!-- τ --></mi>
</mrow>
</mfrac>
</mrow>
<mrow>
<mo>[</mo>
<mrow>
<msub>
<mi>ϕ<!-- ϕ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mo>−<!-- − --></mo>
<mi>ω<!-- ω --></mi>
<mi>τ<!-- τ --></mi>
<mo>+</mo>
<mi>ω<!-- ω --></mi>
<mi>t</mi>
</mrow>
<mo>]</mo>
</mrow>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mn>0</mn>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}{\frac {\partial }{\partial \omega }}\left[\phi _{\tau }(\omega )-\omega \tau +\omega t\right]&amp;=0\\{\frac {\partial }{\partial \tau }}\left[\phi _{\tau }(\omega )-\omega \tau +\omega t\right]&amp;=0\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./7666c5be3cf36d2a8d01689da909270a31a1164c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -5.005ex; width:26.63ex; height:11.176ex;" alt="{\displaystyle {\begin{aligned}{\frac {\partial }{\partial \omega }}\left[\phi _{\tau }(\omega )-\omega \tau +\omega t\right]&amp;=0\\{\frac {\partial }{\partial \tau }}\left[\phi _{\tau }(\omega )-\omega \tau +\omega t\right]&amp;=0\end{aligned}}}" loading="lazy"></span></dd></dl>
<p>or equivalently, around the point <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\hat {t}},{\hat {\omega }}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>t</mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mo>,</mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\hat {t}},{\hat {\omega }}}</annotation>
</semantics>
</math></span><img src="./c703c253010395d06f7ff7d3baba69c4fc08b675.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.836ex; height:3.009ex;" alt="{\displaystyle {\hat {t}},{\hat {\omega }}}" loading="lazy"></span> defined by<sup id="cite_ref-Kodera_4-4" class="reference"><a href="#cite_note-Kodera-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 74">: 74 </span></sup>
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}{\hat {t}}(\tau ,\omega )&amp;=\tau -{\frac {\partial \phi _{\tau }(\omega )}{\partial \omega }}=-{\frac {\partial \phi (\tau ,\omega )}{\partial \omega }}\\{\hat {\omega }}(\tau ,\omega )&amp;={\frac {\partial \phi _{\tau }(\omega )}{\partial \tau }}=\omega +{\frac {\partial \phi (\tau ,\omega )}{\partial \tau }}\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>t</mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mi>τ<!-- τ --></mi>
<mo>−<!-- − --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<msub>
<mi>ϕ<!-- ϕ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>ω<!-- ω --></mi>
</mrow>
</mfrac>
</mrow>
<mo>=</mo>
<mo>−<!-- − --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>ϕ<!-- ϕ --></mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>ω<!-- ω --></mi>
</mrow>
</mfrac>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<msub>
<mi>ϕ<!-- ϕ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>τ<!-- τ --></mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>τ<!-- τ --></mi>
</mrow>
</mfrac>
</mrow>
<mo>=</mo>
<mi>ω<!-- ω --></mi>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>ϕ<!-- ϕ --></mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>τ<!-- τ --></mi>
</mrow>
</mfrac>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}{\hat {t}}(\tau ,\omega )&amp;=\tau -{\frac {\partial \phi _{\tau }(\omega )}{\partial \omega }}=-{\frac {\partial \phi (\tau ,\omega )}{\partial \omega }}\\{\hat {\omega }}(\tau ,\omega )&amp;={\frac {\partial \phi _{\tau }(\omega )}{\partial \tau }}=\omega +{\frac {\partial \phi (\tau ,\omega )}{\partial \tau }}\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./e335cc491f50a8c11430a2ad686b7d231cb1ac59.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -5.338ex; width:36.643ex; height:11.843ex;" alt="{\displaystyle {\begin{aligned}{\hat {t}}(\tau ,\omega )&amp;=\tau -{\frac {\partial \phi _{\tau }(\omega )}{\partial \omega }}=-{\frac {\partial \phi (\tau ,\omega )}{\partial \omega }}\\{\hat {\omega }}(\tau ,\omega )&amp;={\frac {\partial \phi _{\tau }(\omega )}{\partial \tau }}=\omega +{\frac {\partial \phi (\tau ,\omega )}{\partial \tau }}\end{aligned}}}" loading="lazy"></span></dd></dl>
<p>This phenomenon is known in such fields as optics as the <a href="Stationary_phase_approximation" title="Stationary phase approximation">principle of stationary phase</a>, which states that for periodic or quasi-periodic signals, the variation of the Fourier phase spectrum not attributable to periodic oscillation is slow with respect to time in the vicinity of the frequency of oscillation, and in surrounding regions the variation is relatively rapid. Analogously, for impulsive signals, that are concentrated in time, the variation of the phase spectrum is slow with respect to frequency near the time of the impulse, and in surrounding regions the variation is relatively rapid.<sup id="cite_ref-Kodera_4-5" class="reference"><a href="#cite_note-Kodera-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 73">: 73 </span></sup>
</p><p>In reconstruction, positive and negative contributions to the synthesized waveform cancel, due to destructive interference, in frequency regions of rapid phase variation. Only regions of slow phase variation (stationary phase) will contribute significantly to the reconstruction, and the maximum contribution (center of gravity) occurs at the point where the phase is changing most slowly with respect to time and frequency.<sup id="cite_ref-Kodera_4-6" class="reference"><a href="#cite_note-Kodera-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 71">: 71 </span></sup>
</p><p>The time-frequency coordinates thus computed are equal to the local group delay, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\hat {t}}_{g}(t,\omega ),}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>t</mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mi>g</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mo>,</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\hat {t}}_{g}(t,\omega ),}</annotation>
</semantics>
</math></span><img src="./d2e2f580694f49b77dbb5ea6b0ba2199e6a83df8.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.005ex; width:8.153ex; height:3.343ex;" alt="{\displaystyle {\hat {t}}_{g}(t,\omega ),}" loading="lazy"></span> and local instantaneous frequency, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\hat {\omega }}_{i}(t,\omega ),}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mi>i</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mo>,</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\hat {\omega }}_{i}(t,\omega ),}</annotation>
</semantics>
</math></span><img src="./dac9e9086b36e099de73632763fe35edd01e136d.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:8.021ex; height:2.843ex;" alt="{\displaystyle {\hat {\omega }}_{i}(t,\omega ),}" loading="lazy"></span> and are computed from the phase of the short-time Fourier transform, which is normally ignored when constructing the spectrogram. These quantities are <i>local</i> in the sense that they represent a windowed and filtered signal that is localized in time and frequency, and are not global properties of the signal under analysis.<sup id="cite_ref-Kodera_4-7" class="reference"><a href="#cite_note-Kodera-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 70">: 70 </span></sup>
</p><p>The modified moving window method, or method of reassignment, changes (reassigns) the point of attribution of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \epsilon (t,\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>ϵ<!-- ϵ --></mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \epsilon (t,\omega )}</annotation>
</semantics>
</math></span><img src="./03710de04b64c693e8a94ee130ea6216e2878a01.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.073ex; height:2.843ex;" alt="{\displaystyle \epsilon (t,\omega )}" loading="lazy"></span> to this point of maximum contribution <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\hat {t}}(t,\omega ),{\hat {\omega }}(t,\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>t</mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mo>,</mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\hat {t}}(t,\omega ),{\hat {\omega }}(t,\omega )}</annotation>
</semantics>
</math></span><img src="./fdcc5a107c4178753e4883026850b8910745073d.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:14.093ex; height:3.176ex;" alt="{\displaystyle {\hat {t}}(t,\omega ),{\hat {\omega }}(t,\omega )}" loading="lazy"></span>, rather than to the point <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle t,\omega }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle t,\omega }</annotation>
</semantics>
</math></span><img src="./60f23b6df828fd04f8623aaad24e68d00ce8df63.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.319ex; height:2.343ex;" alt="{\displaystyle t,\omega }" loading="lazy"></span> at which it is computed. This point is sometimes called the <i>center of gravity</i> of the distribution, by way of analogy to a mass distribution. This analogy is a useful reminder that the attribution of spectral energy to the center of gravity of its distribution only makes sense when there is energy to attribute, so the method of reassignment has no meaning at points where the spectrogram is zero-valued.<sup id="cite_ref-improving_2-6" class="reference"><a href="#cite_note-improving-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Efficient_computation_of_reassigned_times_and_frequencies">Efficient computation of reassigned times and frequencies</h2></div>
<p>In digital signal processing, it is most common to sample the time and frequency domains. The discrete Fourier transform is used to compute samples <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X(k)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>X</mi>
<mo stretchy="false">(</mo>
<mi>k</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X(k)}</annotation>
</semantics>
</math></span><img src="./bba570685e082df7e6ff2d7f1c86cbb990aa6743.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.001ex; height:2.843ex;" alt="{\displaystyle X(k)}" loading="lazy"></span> of the Fourier transform from samples <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x(n)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>n</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle x(n)}</annotation>
</semantics>
</math></span><img src="./0cf63d74ce47158e139331ae04053e6decf05e11.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:4.534ex; height:2.843ex;" alt="{\displaystyle x(n)}" loading="lazy"></span> of a time domain signal. The reassignment operations proposed by Kodera et al. cannot be applied directly to the discrete short-time Fourier transform data, because partial derivatives cannot be computed directly on data that is discrete in time and frequency, and it has been suggested that this difficulty has been the primary barrier to wider use of the method of reassignment.
</p><p>It is possible to approximate the partial derivatives using finite differences. For example, the phase spectrum can be evaluated at two nearby times, and the partial derivative with respect to time be approximated as the difference between the two values divided by the time difference, as in
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}{\frac {\partial \phi (t,\omega )}{\partial t}}&amp;\approx {\frac {1}{\Delta t}}\left[\phi \left(t+{\frac {\Delta t}{2}},\omega \right)-\phi \left(t-{\frac {\Delta t}{2}},\omega \right)\right]\\{\frac {\partial \phi (t,\omega )}{\partial \omega }}&amp;\approx {\frac {1}{\Delta \omega }}\left[\phi \left(t,\omega +{\frac {\Delta \omega }{2}}\right)-\phi \left(t,\omega -{\frac {\Delta \omega }{2}}\right)\right]\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>ϕ<!-- ϕ --></mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>t</mi>
</mrow>
</mfrac>
</mrow>
</mtd>
<mtd>
<mi></mi>
<mo>≈<!-- ≈ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mn>1</mn>
<mrow>
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mi>t</mi>
</mrow>
</mfrac>
</mrow>
<mrow>
<mo>[</mo>
<mrow>
<mi>ϕ<!-- ϕ --></mi>
<mrow>
<mo>(</mo>
<mrow>
<mi>t</mi>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mi>t</mi>
</mrow>
<mn>2</mn>
</mfrac>
</mrow>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
</mrow>
<mo>)</mo>
</mrow>
<mo>−<!-- − --></mo>
<mi>ϕ<!-- ϕ --></mi>
<mrow>
<mo>(</mo>
<mrow>
<mi>t</mi>
<mo>−<!-- − --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mi>t</mi>
</mrow>
<mn>2</mn>
</mfrac>
</mrow>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
<mo>]</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>ϕ<!-- ϕ --></mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>ω<!-- ω --></mi>
</mrow>
</mfrac>
</mrow>
</mtd>
<mtd>
<mi></mi>
<mo>≈<!-- ≈ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mn>1</mn>
<mrow>
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mi>ω<!-- ω --></mi>
</mrow>
</mfrac>
</mrow>
<mrow>
<mo>[</mo>
<mrow>
<mi>ϕ<!-- ϕ --></mi>
<mrow>
<mo>(</mo>
<mrow>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo>+</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mi>ω<!-- ω --></mi>
</mrow>
<mn>2</mn>
</mfrac>
</mrow>
</mrow>
<mo>)</mo>
</mrow>
<mo>−<!-- − --></mo>
<mi>ϕ<!-- ϕ --></mi>
<mrow>
<mo>(</mo>
<mrow>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo>−<!-- − --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mi>ω<!-- ω --></mi>
</mrow>
<mn>2</mn>
</mfrac>
</mrow>
</mrow>
<mo>)</mo>
</mrow>
</mrow>
<mo>]</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}{\frac {\partial \phi (t,\omega )}{\partial t}}&amp;\approx {\frac {1}{\Delta t}}\left[\phi \left(t+{\frac {\Delta t}{2}},\omega \right)-\phi \left(t-{\frac {\Delta t}{2}},\omega \right)\right]\\{\frac {\partial \phi (t,\omega )}{\partial \omega }}&amp;\approx {\frac {1}{\Delta \omega }}\left[\phi \left(t,\omega +{\frac {\Delta \omega }{2}}\right)-\phi \left(t,\omega -{\frac {\Delta \omega }{2}}\right)\right]\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./e8361b3975cd8b46baa8db49b213dee37964634a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -5.838ex; width:53.561ex; height:12.843ex;" alt="{\displaystyle {\begin{aligned}{\frac {\partial \phi (t,\omega )}{\partial t}}&amp;\approx {\frac {1}{\Delta t}}\left[\phi \left(t+{\frac {\Delta t}{2}},\omega \right)-\phi \left(t-{\frac {\Delta t}{2}},\omega \right)\right]\\{\frac {\partial \phi (t,\omega )}{\partial \omega }}&amp;\approx {\frac {1}{\Delta \omega }}\left[\phi \left(t,\omega +{\frac {\Delta \omega }{2}}\right)-\phi \left(t,\omega -{\frac {\Delta \omega }{2}}\right)\right]\end{aligned}}}" loading="lazy"></span></dd></dl>
<p>For sufficiently small values of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Delta t}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mi>t</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \Delta t}</annotation>
</semantics>
</math></span><img src="./8c28867ecd34e2caed12cf38feadf6a81a7ee542.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.775ex; height:2.176ex;" alt="{\displaystyle \Delta t}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Delta \omega ,}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi mathvariant="normal">Δ<!-- Δ --></mi>
<mi>ω<!-- ω --></mi>
<mo>,</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \Delta \omega ,}</annotation>
</semantics>
</math></span><img src="./bddb09692243b47e0fdaeceed99e20a8cb024389.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:4.029ex; height:2.509ex;" alt="{\displaystyle \Delta \omega ,}" loading="lazy"></span> and provided that the phase difference is appropriately "unwrapped", this finite-difference method yields good approximations to the partial derivatives of phase, because in regions of the spectrum in which the evolution of the phase is dominated by rotation due to sinusoidal oscillation of a single, nearby component, the phase is a linear function.
</p><p>Independently of Kodera <i>et al.</i>, Nelson arrived at a similar method for improving the time-frequency precision of short-time spectral data from partial derivatives of the short-time phase
spectrum.<sup id="cite_ref-crossspectral_6-0" class="reference"><a href="#cite_note-crossspectral-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> It is easily shown that Nelson's <i>cross spectral surfaces</i> compute an approximation of the derivatives that is equivalent to the finite differences method.
</p><p>Auger and Flandrin showed that the method of reassignment, proposed in the context of the spectrogram by Kodera et al., could be extended to any member of <a href="Cohen's_class" class="mw-redirect" title="Cohen's class">Cohen's class</a> of time-frequency representations by generalizing the reassignment operations to
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}{\hat {t}}(t,\omega )&amp;=t-{\frac {\iint \tau \cdot W_{x}(t-\tau ,\omega -\nu )\cdot \Phi (\tau ,\nu )d\tau d\nu }{\iint W_{x}\left(t-\tau ,\omega -\nu \right)\cdot \Phi (\tau ,\nu )d\tau d\nu }}\\{\hat {\omega }}(t,\omega )&amp;=\omega -{\frac {\iint \nu \cdot W_{x}(t-\tau ,\omega -\nu )\cdot \Phi (\tau ,\nu )d\tau d\nu }{\iint W_{x}(t-\tau ,\omega -\nu )\cdot \Phi (\tau ,\nu )d\tau d\nu }}\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>t</mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mi>t</mi>
<mo>−<!-- − --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mo>∬<!-- ∬ --></mo>
<mi>τ<!-- τ --></mi>
<mo>⋅<!-- ⋅ --></mo>
<msub>
<mi>W</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>x</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>−<!-- − --></mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo>−<!-- − --></mo>
<mi>ν<!-- ν --></mi>
<mo stretchy="false">)</mo>
<mo>⋅<!-- ⋅ --></mo>
<mi mathvariant="normal">Φ<!-- Φ --></mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ν<!-- ν --></mi>
<mo stretchy="false">)</mo>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
<mi>d</mi>
<mi>ν<!-- ν --></mi>
</mrow>
<mrow>
<mo>∬<!-- ∬ --></mo>
<msub>
<mi>W</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>x</mi>
</mrow>
</msub>
<mrow>
<mo>(</mo>
<mrow>
<mi>t</mi>
<mo>−<!-- − --></mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo>−<!-- − --></mo>
<mi>ν<!-- ν --></mi>
</mrow>
<mo>)</mo>
</mrow>
<mo>⋅<!-- ⋅ --></mo>
<mi mathvariant="normal">Φ<!-- Φ --></mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ν<!-- ν --></mi>
<mo stretchy="false">)</mo>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
<mi>d</mi>
<mi>ν<!-- ν --></mi>
</mrow>
</mfrac>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mi>ω<!-- ω --></mi>
<mo>−<!-- − --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mo>∬<!-- ∬ --></mo>
<mi>ν<!-- ν --></mi>
<mo>⋅<!-- ⋅ --></mo>
<msub>
<mi>W</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>x</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>−<!-- − --></mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo>−<!-- − --></mo>
<mi>ν<!-- ν --></mi>
<mo stretchy="false">)</mo>
<mo>⋅<!-- ⋅ --></mo>
<mi mathvariant="normal">Φ<!-- Φ --></mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ν<!-- ν --></mi>
<mo stretchy="false">)</mo>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
<mi>d</mi>
<mi>ν<!-- ν --></mi>
</mrow>
<mrow>
<mo>∬<!-- ∬ --></mo>
<msub>
<mi>W</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>x</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>−<!-- − --></mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo>−<!-- − --></mo>
<mi>ν<!-- ν --></mi>
<mo stretchy="false">)</mo>
<mo>⋅<!-- ⋅ --></mo>
<mi mathvariant="normal">Φ<!-- Φ --></mi>
<mo stretchy="false">(</mo>
<mi>τ<!-- τ --></mi>
<mo>,</mo>
<mi>ν<!-- ν --></mi>
<mo stretchy="false">)</mo>
<mi>d</mi>
<mi>τ<!-- τ --></mi>
<mi>d</mi>
<mi>ν<!-- ν --></mi>
</mrow>
</mfrac>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}{\hat {t}}(t,\omega )&amp;=t-{\frac {\iint \tau \cdot W_{x}(t-\tau ,\omega -\nu )\cdot \Phi (\tau ,\nu )d\tau d\nu }{\iint W_{x}\left(t-\tau ,\omega -\nu \right)\cdot \Phi (\tau ,\nu )d\tau d\nu }}\\{\hat {\omega }}(t,\omega )&amp;=\omega -{\frac {\iint \nu \cdot W_{x}(t-\tau ,\omega -\nu )\cdot \Phi (\tau ,\nu )d\tau d\nu }{\iint W_{x}(t-\tau ,\omega -\nu )\cdot \Phi (\tau ,\nu )d\tau d\nu }}\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./0177abef1c757487b263fb692f8000fc4361e6f9.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -6.505ex; width:51.179ex; height:14.176ex;" alt="{\displaystyle {\begin{aligned}{\hat {t}}(t,\omega )&amp;=t-{\frac {\iint \tau \cdot W_{x}(t-\tau ,\omega -\nu )\cdot \Phi (\tau ,\nu )d\tau d\nu }{\iint W_{x}\left(t-\tau ,\omega -\nu \right)\cdot \Phi (\tau ,\nu )d\tau d\nu }}\\{\hat {\omega }}(t,\omega )&amp;=\omega -{\frac {\iint \nu \cdot W_{x}(t-\tau ,\omega -\nu )\cdot \Phi (\tau ,\nu )d\tau d\nu }{\iint W_{x}(t-\tau ,\omega -\nu )\cdot \Phi (\tau ,\nu )d\tau d\nu }}\end{aligned}}}" loading="lazy"></span></dd></dl>
<p>where <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle W_{x}(t,\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>W</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>x</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle W_{x}(t,\omega )}</annotation>
</semantics>
</math></span><img src="./92ba8cf34f3b00c2b5a1aa822345992f0fd2c671.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:8.495ex; height:2.843ex;" alt="{\displaystyle W_{x}(t,\omega )}" loading="lazy"></span> is the Wigner–Ville distribution of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle x(t)}</annotation>
</semantics>
</math></span><img src="./d54c275db3a1e620737b58e143b0818107fa5f5c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:3.979ex; height:2.843ex;" alt="{\displaystyle x(t)}" loading="lazy"></span>, and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Phi (t,\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi mathvariant="normal">Φ<!-- Φ --></mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \Phi (t,\omega )}</annotation>
</semantics>
</math></span><img src="./de4ce5c1941e8e973d38b5b5b8c3c0f48664d213.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:6.807ex; height:2.843ex;" alt="{\displaystyle \Phi (t,\omega )}" loading="lazy"></span> is the kernel function that defines the distribution. They further described an efficient method for computing the times and frequencies for the reassigned spectrogram efficiently and accurately without explicitly computing the partial derivatives of
phase.<sup id="cite_ref-improving_2-7" class="reference"><a href="#cite_note-improving-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>In the case of the spectrogram, the reassignment operations can be computed by
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}{\hat {t}}(t,\omega )&amp;=t-\Re \left\{{\frac {X_{{\mathcal {T}}h}(t,\omega )\cdot X^{*}(t,\omega )}{|X(t,\omega )|^{2}}}\right\}\\{\hat {\omega }}(t,\omega )&amp;=\omega +\Im \left\{{\frac {X_{{\mathcal {D}}h}(t,\omega )\cdot X^{*}(t,\omega )}{|X(t,\omega )|^{2}}}\right\}\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>t</mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mi>t</mi>
<mo>−<!-- − --></mo>
<mi mathvariant="normal">ℜ<!-- ℜ --></mi>
<mrow>
<mo>{</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<msub>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">T</mi>
</mrow>
</mrow>
<mi>h</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mo>⋅<!-- ⋅ --></mo>
<msup>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>∗<!-- ∗ --></mo>
</mrow>
</msup>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mi>X</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mrow>
</mfrac>
</mrow>
<mo>}</mo>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mover>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">^<!-- ^ --></mo>
</mover>
</mrow>
</mrow>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mi>ω<!-- ω --></mi>
<mo>+</mo>
<mi mathvariant="normal">ℑ<!-- ℑ --></mi>
<mrow>
<mo>{</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<msub>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
</mrow>
</mrow>
<mi>h</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<mo>⋅<!-- ⋅ --></mo>
<msup>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mo>∗<!-- ∗ --></mo>
</mrow>
</msup>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mi>X</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mrow>
</mfrac>
</mrow>
<mo>}</mo>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}{\hat {t}}(t,\omega )&amp;=t-\Re \left\{{\frac {X_{{\mathcal {T}}h}(t,\omega )\cdot X^{*}(t,\omega )}{|X(t,\omega )|^{2}}}\right\}\\{\hat {\omega }}(t,\omega )&amp;=\omega +\Im \left\{{\frac {X_{{\mathcal {D}}h}(t,\omega )\cdot X^{*}(t,\omega )}{|X(t,\omega )|^{2}}}\right\}\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./e8af01ae61c682f30bbc96f70fb46e87c5417593.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -7.005ex; width:40.458ex; height:15.176ex;" alt="{\displaystyle {\begin{aligned}{\hat {t}}(t,\omega )&amp;=t-\Re \left\{{\frac {X_{{\mathcal {T}}h}(t,\omega )\cdot X^{*}(t,\omega )}{|X(t,\omega )|^{2}}}\right\}\\{\hat {\omega }}(t,\omega )&amp;=\omega +\Im \left\{{\frac {X_{{\mathcal {D}}h}(t,\omega )\cdot X^{*}(t,\omega )}{|X(t,\omega )|^{2}}}\right\}\end{aligned}}}" loading="lazy"></span></dd></dl>
<p>where <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X(t,\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>X</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X(t,\omega )}</annotation>
</semantics>
</math></span><img src="./d2369db74bd62ecffea3243abef45baf331a2aba.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:7.109ex; height:2.843ex;" alt="{\displaystyle X(t,\omega )}" loading="lazy"></span> is the short-time Fourier transform computed using an analysis window <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h(t),X_{{\mathcal {T}}h}(t,\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo>,</mo>
<msub>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">T</mi>
</mrow>
</mrow>
<mi>h</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h(t),X_{{\mathcal {T}}h}(t,\omega )}</annotation>
</semantics>
</math></span><img src="./0c542125b572d52e2245b22295bc3223d1809708.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:14.623ex; height:2.843ex;" alt="{\displaystyle h(t),X_{{\mathcal {T}}h}(t,\omega )}" loading="lazy"></span> is the short-time Fourier transform computed using a time-weighted analysis window <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h_{\mathcal {T}}(t)=t\cdot h(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>h</mi>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">T</mi>
</mrow>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mi>t</mi>
<mo>⋅<!-- ⋅ --></mo>
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h_{\mathcal {T}}(t)=t\cdot h(t)}</annotation>
</semantics>
</math></span><img src="./1e138f35763bd41789d52a1352426f5c63aeb364.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:15.194ex; height:2.843ex;" alt="{\displaystyle h_{\mathcal {T}}(t)=t\cdot h(t)}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X_{{\mathcal {D}}h}(t,\omega )}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>X</mi>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
</mrow>
</mrow>
<mi>h</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X_{{\mathcal {D}}h}(t,\omega )}</annotation>
</semantics>
</math></span><img src="./8810d36b923069d7b47e6ee5a675594597e35b62.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:9.499ex; height:2.843ex;" alt="{\displaystyle X_{{\mathcal {D}}h}(t,\omega )}" loading="lazy"></span> is the short-time Fourier transform computed using a time-derivative analysis window <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h_{\mathcal {D}}(t)={\tfrac {d}{dt}}h(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>h</mi>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
</mrow>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="false" scriptlevel="0">
<mfrac>
<mi>d</mi>
<mrow>
<mi>d</mi>
<mi>t</mi>
</mrow>
</mfrac>
</mstyle>
</mrow>
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h_{\mathcal {D}}(t)={\tfrac {d}{dt}}h(t)}</annotation>
</semantics>
</math></span><img src="./f12248dbbb129d825fdc2bb7d853e8f44cd2fd8d.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -1.338ex; width:14.863ex; height:3.843ex;" alt="{\displaystyle h_{\mathcal {D}}(t)={\tfrac {d}{dt}}h(t)}" loading="lazy"></span>.
</p><p>Using the auxiliary window functions <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h_{\mathcal {T}}(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>h</mi>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">T</mi>
</mrow>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h_{\mathcal {T}}(t)}</annotation>
</semantics>
</math></span><img src="./d796bd566ffbba05ce68e72799975613d69d69f0.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.589ex; height:2.843ex;" alt="{\displaystyle h_{\mathcal {T}}(t)}" loading="lazy"></span> and <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h_{\mathcal {D}}(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>h</mi>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
</mrow>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h_{\mathcal {D}}(t)}</annotation>
</semantics>
</math></span><img src="./3c6d1631be5436fdcd6204408355558c9015db7c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.487ex; height:2.843ex;" alt="{\displaystyle h_{\mathcal {D}}(t)}" loading="lazy"></span>, the reassignment operations can be computed at any time-frequency coordinate
<span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle t,\omega }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle t,\omega }</annotation>
</semantics>
</math></span><img src="./60f23b6df828fd04f8623aaad24e68d00ce8df63.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.319ex; height:2.343ex;" alt="{\displaystyle t,\omega }" loading="lazy"></span> from an algebraic combination of three Fourier transforms evaluated at <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle t,\omega }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle t,\omega }</annotation>
</semantics>
</math></span><img src="./60f23b6df828fd04f8623aaad24e68d00ce8df63.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.319ex; height:2.343ex;" alt="{\displaystyle t,\omega }" loading="lazy"></span>. Since these algorithms operate only on short-time spectral data evaluated at a single time and frequency, and do not explicitly compute any derivatives, this gives an efficient method of computing the reassigned discrete short-time Fourier transform.
</p><p>One constraint in this method of computation is that the <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle |X(t,\omega )|^{2}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mi>X</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<mi>ω<!-- ω --></mi>
<mo stretchy="false">)</mo>
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle |X(t,\omega )|^{2}}</annotation>
</semantics>
</math></span><img src="./4cff392100c675433d9ca73c643ca1a5b0962ca2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:9.457ex; height:3.343ex;" alt="{\displaystyle |X(t,\omega )|^{2}}" loading="lazy"></span> must be non-zero. This is not much of a restriction, since the reassignment operation itself implies that there is some energy to reassign, and has no meaning when the distribution is zero-valued.
</p>
<div class="mw-heading mw-heading2"><h2 id="Separability">Separability</h2></div>
<p>The short-time Fourier transform can often be used to estimate the amplitudes and phases of the individual components in a <i>multi-component</i> signal, such as a quasi-harmonic musical instrument tone. Moreover, the time and frequency reassignment operations can be used to sharpen the representation by attributing the spectral energy reported by the short-time Fourier transform to the point that is the local center of gravity of the complex energy distribution.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p><p>For a signal consisting of a single component, the instantaneous frequency can be estimated from the partial derivatives of phase of any short-time Fourier transform channel that passes the component. If the signal is to be decomposed into many components,
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x(t)=\sum _{n}A_{n}(t)e^{j\theta _{n}(t)}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>x</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<munder>
<mo>∑<!-- ∑ --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</munder>
<msub>
<mi>A</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<msup>
<mi>e</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>j</mi>
<msub>
<mi>θ<!-- θ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mrow>
</msup>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle x(t)=\sum _{n}A_{n}(t)e^{j\theta _{n}(t)}}</annotation>
</semantics>
</math></span><img src="./2bf8584c4b5210976043d99869997378a2b51ab8.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -3.005ex; width:22.032ex; height:5.509ex;" alt="{\displaystyle x(t)=\sum _{n}A_{n}(t)e^{j\theta _{n}(t)}}" loading="lazy"></span></dd></dl>
<p>and the instantaneous frequency of each component is defined as the derivative of its phase with respect to time, that is,
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \omega _{n}(t)={\frac {d\theta _{n}(t)}{dt}},}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>ω<!-- ω --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo>=</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mi>d</mi>
<msub>
<mi>θ<!-- θ --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mrow>
<mrow>
<mi>d</mi>
<mi>t</mi>
</mrow>
</mfrac>
</mrow>
<mo>,</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \omega _{n}(t)={\frac {d\theta _{n}(t)}{dt}},}</annotation>
</semantics>
</math></span><img src="./5edb8cdc001f165afee0fdf1957a5f9abfe96427.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -2.005ex; width:16.068ex; height:5.843ex;" alt="{\displaystyle \omega _{n}(t)={\frac {d\theta _{n}(t)}{dt}},}" loading="lazy"></span></dd></dl>
<p>then the instantaneous frequency of each individual component can be computed from the phase of the response of a filter that passes that component, provided that no more than one component lies in the passband of the filter.
</p><p>This is the property, in the frequency domain, that Nelson called <i>separability</i><sup id="cite_ref-crossspectral_6-1" class="reference"><a href="#cite_note-crossspectral-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> and is required of all signals so analyzed. If this property is not met, then the desired multi-component decomposition cannot be achieved, because the parameters of individual components cannot be estimated from the short-time Fourier transform. In such cases, a different analysis window must be chosen so that the separability criterion is satisfied.
</p><p>If the components of a signal are separable in frequency with respect to a particular short-time spectral analysis window, then the output of each short-time Fourier transform filter is a filtered version of, at most, a single dominant (having significant energy) component, and so the derivative, with respect to time, of the phase of the <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle X(t,\omega _{0})}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>X</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<msub>
<mi>ω<!-- ω --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle X(t,\omega _{0})}</annotation>
</semantics>
</math></span><img src="./91a1f2be07287d3552d93895780d917a0e8648c9.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:8.163ex; height:2.843ex;" alt="{\displaystyle X(t,\omega _{0})}" loading="lazy"></span> is equal to the derivative with respect to time, of the phase of the dominant component at <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \omega _{0}.}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>ω<!-- ω --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
<mo>.</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \omega _{0}.}</annotation>
</semantics>
</math></span><img src="./e11b59c293cf0a159b7ddd63ae5a43c720a59a4b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.147ex; height:2.009ex;" alt="{\displaystyle \omega _{0}.}" loading="lazy"></span> Therefore, if a component, <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x_{n}(t),}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo>,</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle x_{n}(t),}</annotation>
</semantics>
</math></span><img src="./25c4939b121ef88318e884cba0311d470e9ccf53.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.844ex; height:2.843ex;" alt="{\displaystyle x_{n}(t),}" loading="lazy"></span> having instantaneous frequency <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \omega _{n}(t)}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>ω<!-- ω --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \omega _{n}(t)}</annotation>
</semantics>
</math></span><img src="./5b42d7e87c97c0e6335bf08da66e67e9e370f96f.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:5.313ex; height:2.843ex;" alt="{\displaystyle \omega _{n}(t)}" loading="lazy"></span> is the dominant component in the vicinity of <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \omega _{0},}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>ω<!-- ω --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
<mo>,</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \omega _{0},}</annotation>
</semantics>
</math></span><img src="./f191aa60002cbd513aea6b88666c5500aa84c2fc.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.147ex; height:2.009ex;" alt="{\displaystyle \omega _{0},}" loading="lazy"></span> then the instantaneous frequency of that component can be computed from the phase of the short-time Fourier transform evaluated at <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \omega _{0}.}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<msub>
<mi>ω<!-- ω --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
<mo>.</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \omega _{0}.}</annotation>
</semantics>
</math></span><img src="./e11b59c293cf0a159b7ddd63ae5a43c720a59a4b.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:3.147ex; height:2.009ex;" alt="{\displaystyle \omega _{0}.}" loading="lazy"></span> That is,
</p>
<dl><dd><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\begin{aligned}\omega _{n}(t)&amp;={\frac {\partial }{\partial t}}\arg\{x_{n}(t)\}\\&amp;={\frac {\partial }{\partial t}}\arg\{X(t,\omega _{0})\}\end{aligned}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true">
<mtr>
<mtd>
<msub>
<mi>ω<!-- ω --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>t</mi>
</mrow>
</mfrac>
</mrow>
<mi>arg</mi>
<mo>⁡<!-- ⁡ --></mo>
<mo fence="false" stretchy="false">{</mo>
<msub>
<mi>x</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>n</mi>
</mrow>
</msub>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo fence="false" stretchy="false">}</mo>
</mtd>
</mtr>
<mtr>
<mtd></mtd>
<mtd>
<mi></mi>
<mo>=</mo>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mrow>
<mi mathvariant="normal">∂<!-- ∂ --></mi>
<mi>t</mi>
</mrow>
</mfrac>
</mrow>
<mi>arg</mi>
<mo>⁡<!-- ⁡ --></mo>
<mo fence="false" stretchy="false">{</mo>
<mi>X</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo>,</mo>
<msub>
<mi>ω<!-- ω --></mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
<mo stretchy="false">)</mo>
<mo fence="false" stretchy="false">}</mo>
</mtd>
</mtr>
</mtable>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\begin{aligned}\omega _{n}(t)&amp;={\frac {\partial }{\partial t}}\arg\{x_{n}(t)\}\\&amp;={\frac {\partial }{\partial t}}\arg\{X(t,\omega _{0})\}\end{aligned}}}</annotation>
</semantics>
</math></span><img src="./27cae34dfd7ec51659c786e8e687ae4bf507a949.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -5.005ex; width:26.268ex; height:11.176ex;" alt="{\displaystyle {\begin{aligned}\omega _{n}(t)&amp;={\frac {\partial }{\partial t}}\arg\{x_{n}(t)\}\\&amp;={\frac {\partial }{\partial t}}\arg\{X(t,\omega _{0})\}\end{aligned}}}" loading="lazy"></span></dd></dl>
<p>Just as each bandpass filter in the short-time Fourier transform filterbank may pass at most a single complex exponential component, two temporal events must be sufficiently separated in time that they do not lie in the same windowed segment of the input signal. This is the property of separability in the time domain, and is equivalent to requiring that the time between two events be
greater than the length of the impulse response of the short-time Fourier transform filters, the span of non-zero samples in <span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle h(t).}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi>h</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mo>.</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle h(t).}</annotation>
</semantics>
</math></span><img src="./cd87154a5f7e3efdf3ba7edf5e83d0be88286269.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:4.635ex; height:2.843ex;" alt="{\displaystyle h(t).}" loading="lazy"></span>
</p>
<ul class="gallery mw-gallery-packed">
<li class="gallerybox" style="width: 427.33333333333px">
<div class="thumb" style="width: 425.33333333333px;"><span typeof="mw:File"></span></div>
<div class="gallerytext">Long-window reassigned spectrogram of the word "open", computed using a 54.4 ms Kaiser window with a shaping parameter of 9, emphasizing harmonics.</div>
</li>
<li class="gallerybox" style="width: 428px">
<div class="thumb" style="width: 426px;"><span typeof="mw:File"></span></div>
<div class="gallerytext">Short-window reassigned spectrogram of the word "open", computed using a 13.6 ms Kaiser window with a shaping parameter of 9, emphasizing formants and glottal pulses.</div>
</li>
</ul>
<p>In general, there is an infinite number of equally valid decompositions for a multi-component signal. The separability property must be considered in the context of the desired decomposition. For example, in the analysis of a speech signal, an analysis window that is long relative to the time between glottal pulses is sufficient to separate harmonics, but the individual glottal pulses will be smeared, because many pulses are covered by each window (that is, the individual pulses are not separable, in time, by the chosen analysis window). An analysis window that is much shorter than the time between glottal pulses may resolve the glottal pulses, because no window spans more than one pulse, but the harmonic frequencies are smeared together, because the main lobe of the analysis window spectrum is wider than the spacing between the harmonics (that is, the harmonics are not separable, in frequency, by the chosen analysis window).<sup id="cite_ref-crossspectral_6-2" class="reference"><a href="#cite_note-crossspectral-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Page / location: 2585">: 2585 </span></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Extensions">Extensions</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Consensus_complex_reassignment">Consensus complex reassignment</h3></div>
<p>Gardner and Magnasco (2006) argues that the <a href="Auditory_nerve" class="mw-redirect" title="Auditory nerve">auditory nerves</a> may use a form of the reassignment method to process sounds. These nerves are known for preserving timing (phase) information better than they do for magnitudes. The authors come up with a variation of reassignment with complex values (i.e. both phase and magnitude) and show that it produces sparse outputs like auditory nerves do. By running this reassignment with windows of different bandwidths (see discussion in the section above), a "consensus" that captures multiple kinds of signals is found, again like the auditory system. They argue that the algorithm is simple enough for neurons to implement.<sup id="cite_ref-Gar06_8-0" class="reference"><a href="#cite_note-Gar06-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Synchrosqueezing_transform">Synchrosqueezing transform</h3></div>

<p><sup id="cite_ref-Meignen19_9-0" class="reference"><a href="#cite_note-Meignen19-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-hainsworth-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-hainsworth_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFHainsworth2003" class="citation thesis cs1">Hainsworth, Stephen (2003). "Chapter 3: Reassignment methods". <i>Techniques for the Automated Analysis of Musical Audio</i> (PhD). University of Cambridge. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.5.9579">10.1.1.5.9579</a></span>.</cite></span>
</li>
<li id="cite_note-improving-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-improving_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-improving_2-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-improving_2-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-improving_2-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-improving_2-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-improving_2-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-improving_2-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-improving_2-7"><sup><i><b>h</b></i></sup></a></span> <span class="reference-text">
<cite id="CITEREFF._AugerP._Flandrin1995" class="citation journal cs1">F. Auger &amp; P. Flandrin (May 1995). "Improving the readability of time-frequency and time-scale representations by the reassignment method". <i>IEEE Transactions on Signal Processing</i>. <b>43</b> (5): <span class="nowrap">1068–</span>1089. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/1995ITSP...43.1068A">1995ITSP...43.1068A</a>. <a href="CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.646.794">10.1.1.646.794</a></span>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2F78.382394">10.1109/78.382394</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:6336685">6336685</a>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">P. Flandrin, F. Auger, and E. Chassande-Mottin,
<i>Time-frequency reassignment: From principles to algorithms</i>,
in Applications in Time-Frequency Signal Processing
(A. Papandreou-Suppappola, ed.), ch. 5, pp. 179 – 203, CRC Press, 2003.</span>
</li>
<li id="cite_note-Kodera-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-Kodera_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Kodera_4-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Kodera_4-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Kodera_4-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Kodera_4-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-Kodera_4-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-Kodera_4-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-Kodera_4-7"><sup><i><b>h</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFK._KoderaR._GendrinC._de_Villedary1978" class="citation journal cs1">K. Kodera; R. Gendrin &amp; C. de Villedary (Feb 1978). "Analysis of time-varying signals with small BT values". <i>IEEE Transactions on Acoustics, Speech, and Signal Processing</i>. <b>26</b> (1): <span class="nowrap">64–</span>76. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FTASSP.1978.1163047">10.1109/TASSP.1978.1163047</a>.</cite></span>
</li>
<li id="cite_note-Fitz09-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-Fitz09_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Fitz09_5-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFFitzFulop2009" class="citation arxiv cs1">Fitz, Kelly R.; Fulop, Sean A. (2009). "A Unified Theory of Time-Frequency Reassignment". <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/0903.3080">0903.3080</a></span> [<a rel="nofollow" class="external text" href="https://arxiv.org/archive/cs.SD">cs.SD</a>].</cite> – this preprint manuscript is written by a previous contributor to this Wikipedia article; see their contribution.</span>
</li>
<li id="cite_note-crossspectral-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-crossspectral_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-crossspectral_6-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-crossspectral_6-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFD._J._Nelson2001" class="citation journal cs1">D. J. Nelson (Nov 2001). "Cross-spectral methods for processing speech". <i>Journal of the Acoustical Society of America</i>. <b>110</b> (5): <span class="nowrap">2575–</span>2592. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2001ASAJ..110.2575N">2001ASAJ..110.2575N</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1121%2F1.1402616">10.1121/1.1402616</a>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a>&nbsp;<a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/11757947">11757947</a>.</cite></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text">K. Fitz, L. Haken, On the use of time-frequency reassignment in additve sound modeling, Journal of the Audio Engineering Society 50 (11) (2002) 879 – 893.</span>
</li>
<li id="cite_note-Gar06-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-Gar06_8-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFGardnerMagnasco2006" class="citation journal cs1">Gardner, Timothy J.; Magnasco, Marcelo O. (18 April 2006). <a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1431718">"Sparse time-frequency representations"</a>. <i>Proceedings of the National Academy of Sciences</i>. <b>103</b> (16): <span class="nowrap">6094–</span>6099. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2006PNAS..103.6094G">2006PNAS..103.6094G</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1073%2Fpnas.0601707103">10.1073/pnas.0601707103</a></span>. <a href="PMC_(identifier)" class="mw-redirect" title="PMC (identifier)">PMC</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1431718">1431718</a></span>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a>&nbsp;<a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/16601097">16601097</a>.</cite></span>
</li>
<li id="cite_note-Meignen19-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-Meignen19_9-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFMeignenOberlinPham2019" class="citation journal cs1">Meignen, Sylvain; Oberlin, Thomas; Pham, Duong-Hung (July 2019). "Synchrosqueezing transforms: From low- to high-frequency modulations and perspectives". <i>Comptes Rendus Physique</i>. <b>20</b> (5): <span class="nowrap">449–</span>460. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2019CRPhy..20..449M">2019CRPhy..20..449M</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2Fj.crhy.2019.07.001">10.1016/j.crhy.2019.07.001</a>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li>S. A. Fulop and K. Fitz, <i>A spectrogram for the twenty-first century</i>, Acoustics Today, vol. 2, no. 3, pp.&nbsp;26–33, 2006.</li>
<li>S. A. Fulop and K. Fitz, <i>Algorithms for computing the time-corrected instantaneous frequency (reassigned) spectrogram, with applications</i>, Journal of the Acoustical Society of America, vol. 119, pp.&nbsp;360 – 371, Jan 2006.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://tftb.nongnu.org/">TFTB — Time-Frequency ToolBox</a></li>
<li><a rel="nofollow" class="external text" href="http://www.klingbeil.com/spear/">SPEAR - Sinusoidal Partial Editing Analysis and Resynthesis</a></li>
<li><a rel="nofollow" class="external text" href="http://www.cerlsoundgroup.org/Loris/">Loris - Open-source software for sound modeling and morphing</a></li>
<li><a rel="nofollow" class="external text" href="http://musicalgorithms.ewu.edu/algorithms/roughness.html">SRA - A web-based research tool for spectral and roughness analysis of sound signals</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20191118182132/http://musicalgorithms.ewu.edu/algorithms/Roughness.html">Archived</a> 2019-11-18 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a> (supported by a Northwest Academic Computing Consortium grant to J. Middleton, Eastern Washington University)</li></ul>
<div style="clear:both;" class=""></div>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Data_compression_methods241" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Data_compression_methods241" style="font-size:114%;margin:0 4em"><a href="Data_compression" title="Data compression">Data compression</a> methods</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Lossless_compression" title="Lossless compression">Lossless</a><br>type</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Entropy_coding" title="Entropy coding">Entropy</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Adaptive_coding" title="Adaptive coding">Adaptive coding</a></li>
<li><a href="Arithmetic_coding" title="Arithmetic coding">Arithmetic</a></li>
<li><a href="Asymmetric_numeral_systems" title="Asymmetric numeral systems">Asymmetric numeral systems</a></li>
<li><a href="Golomb_coding" title="Golomb coding">Golomb</a></li>
<li><a href="Huffman_coding" title="Huffman coding">Huffman</a>
<ul><li><a href="Adaptive_Huffman_coding" title="Adaptive Huffman coding">Adaptive</a></li>
<li><a href="Canonical_Huffman_code" title="Canonical Huffman code">Canonical</a></li>
<li><a href="Modified_Huffman_coding" title="Modified Huffman coding">Modified</a></li></ul></li>
<li><a href="Range_coding" title="Range coding">Range</a></li>
<li><a href="Shannon_coding" title="Shannon coding">Shannon</a></li>
<li><a href="Shannon%E2%80%93Fano_coding" title="Shannon–Fano coding">Shannon–Fano</a></li>
<li><a href="Shannon%E2%80%93Fano%E2%80%93Elias_coding" title="Shannon–Fano–Elias coding">Shannon–Fano–Elias</a></li>
<li><a href="Tunstall_coding" title="Tunstall coding">Tunstall</a></li>
<li><a href="Unary_coding" title="Unary coding">Unary</a></li>
<li><a href="Universal_code_(data_compression)" title="Universal code (data compression)">Universal</a>
<ul><li><a href="Exponential-Golomb_coding" title="Exponential-Golomb coding">Exp-Golomb</a></li>
<li><a href="Fibonacci_coding" title="Fibonacci coding">Fibonacci</a></li>
<li><a href="Elias_gamma_coding" title="Elias gamma coding">Gamma</a></li>
<li><a href="Levenshtein_coding" title="Levenshtein coding">Levenshtein</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Dictionary_coder" title="Dictionary coder">Dictionary</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Byte-pair_encoding" title="Byte-pair encoding">Byte-pair encoding</a></li>
<li><a href="LZ77_and_LZ78" title="LZ77 and LZ78">Lempel–Ziv</a>
<ul><li><a href="842_(compression_algorithm)" title="842 (compression algorithm)">842</a></li>
<li><a href="LZ4_(compression_algorithm)" title="LZ4 (compression algorithm)">LZ4</a></li>
<li><a href="LZJB" class="mw-redirect" title="LZJB">LZJB</a></li>
<li><a href="Lempel%E2%80%93Ziv%E2%80%93Oberhumer" title="Lempel–Ziv–Oberhumer">LZO</a></li>
<li><a href="LZRW" title="LZRW">LZRW</a></li>
<li><a href="Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski" title="Lempel–Ziv–Storer–Szymanski">LZSS</a></li>
<li><a href="Lempel%E2%80%93Ziv%E2%80%93Welch" title="Lempel–Ziv–Welch">LZW</a></li>
<li><a href="LZWL" title="LZWL">LZWL</a></li>
<li><a href="Snappy_(compression)" title="Snappy (compression)">Snappy</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Burrows%E2%80%93Wheeler_transform" title="Burrows–Wheeler transform">BWT</a></li>
<li><a href="Context_tree_weighting" title="Context tree weighting">CTW</a></li>
<li><a href="Context_mixing" title="Context mixing">CM</a></li>
<li><a href="Delta_encoding" title="Delta encoding">Delta</a>
<ul><li><a href="Incremental_encoding" title="Incremental encoding">Incremental</a></li></ul></li>
<li><a href="Dynamic_Markov_compression" title="Dynamic Markov compression">DMC</a></li>
<li><a href="Differential_pulse-code_modulation" title="Differential pulse-code modulation">DPCM</a></li>
<li><a href="Grammar-based_code" title="Grammar-based code">Grammar</a>
<ul><li><a href="Re-Pair" title="Re-Pair">Re-Pair</a></li>
<li><a href="Sequitur_algorithm" title="Sequitur algorithm">Sequitur</a></li></ul></li>
<li><a href="Discrete_cosine_transform" title="Discrete cosine transform">LDCT</a></li>
<li><a href="Move-to-front_transform" title="Move-to-front transform">MTF</a></li>
<li><a href="PAQ" title="PAQ">PAQ</a></li>
<li><a href="Prediction_by_partial_matching" title="Prediction by partial matching">PPM</a></li>
<li><a href="Run-length_encoding" title="Run-length encoding">RLE</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Hybrid</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>LZ77 + Huffman
<ul><li><a href="Deflate" title="Deflate">Deflate</a></li>
<li><a href="LZX" title="LZX">LZX</a></li>
<li><a href="Lempel%E2%80%93Ziv%E2%80%93Stac" title="Lempel–Ziv–Stac">LZS</a></li></ul></li>
<li>LZ77 + ANS
<ul><li><a href="LZFSE" title="LZFSE">LZFSE</a></li></ul></li>
<li>LZ77 + Huffman + ANS
<ul><li><a href="Zstd" title="Zstd">Zstandard</a></li></ul></li>
<li>LZ77 + Huffman + context
<ul><li><a href="Brotli" title="Brotli">Brotli</a></li></ul></li>
<li>LZSS + Huffman
<ul><li><a href="LHA_(file_format)" title="LHA (file format)">LHA/LZH</a></li></ul></li>
<li>LZ77 + Range
<ul><li><a href="LZMA" title="LZMA">LZMA</a></li>
<li>LZHAM</li></ul></li>
<li>RLE + BWT + MTF + Huffman
<ul><li><a href="Bzip2" title="Bzip2">bzip2</a></li></ul></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Lossy_compression" title="Lossy compression">Lossy</a><br>type</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Transform_coding" title="Transform coding">Transform</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Discrete_cosine_transform" title="Discrete cosine transform">Discrete cosine transform</a>
<ul><li><a href="Discrete_cosine_transform" title="Discrete cosine transform">DCT</a></li>
<li><a href="Modified_discrete_cosine_transform" title="Modified discrete cosine transform">MDCT</a></li></ul></li>
<li><a href="Discrete_sine_transform" title="Discrete sine transform">DST</a></li>
<li><a href="Fast_Fourier_transform" title="Fast Fourier transform">FFT</a></li>
<li><a href="Wavelet_transform" title="Wavelet transform">Wavelet</a>
<ul><li><a href="Daubechies_wavelet" title="Daubechies wavelet">Daubechies</a></li>
<li><a href="Discrete_wavelet_transform" title="Discrete wavelet transform">DWT</a></li>
<li><a href="Set_partitioning_in_hierarchical_trees" title="Set partitioning in hierarchical trees">SPIHT</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Predictive</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Differential_pulse-code_modulation" title="Differential pulse-code modulation">DPCM</a>
<ul><li><a href="Adaptive_differential_pulse-code_modulation" title="Adaptive differential pulse-code modulation">ADPCM</a></li></ul></li>
<li><a href="Linear_predictive_coding" title="Linear predictive coding">LPC</a>
<ul><li><a href="Algebraic_code-excited_linear_prediction" title="Algebraic code-excited linear prediction">ACELP</a></li>
<li><a href="Code-excited_linear_prediction" title="Code-excited linear prediction">CELP</a></li>
<li><a href="Log_area_ratio" title="Log area ratio">LAR</a></li>
<li><a href="Line_spectral_pairs" title="Line spectral pairs">LSP</a></li>
<li><a href="Warped_linear_predictive_coding" title="Warped linear predictive coding">WLPC</a></li></ul></li>
<li>Motion
<ul><li><a href="Motion_compensation" title="Motion compensation">Compensation</a></li>
<li><a href="Motion_estimation" title="Motion estimation">Estimation</a></li>
<li><a href="Motion_vector" class="mw-redirect" title="Motion vector">Vector</a></li></ul></li>
<li><a href="Psychoacoustics" title="Psychoacoustics">Psychoacoustic</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Data_compression#Audio" title="Data compression">Audio</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bit_rate" title="Bit rate">Bit rate</a>
<ul><li><a href="Average_bitrate" title="Average bitrate">ABR</a></li>
<li><a href="Constant_bitrate" title="Constant bitrate">CBR</a></li>
<li><a href="Variable_bitrate" title="Variable bitrate">VBR</a></li></ul></li>
<li><a href="Companding" title="Companding">Companding</a></li>
<li><a href="Convolution" title="Convolution">Convolution</a></li>
<li><a href="Dynamic_range" title="Dynamic range">Dynamic range</a></li>
<li><a href="Latency_(audio)" title="Latency (audio)">Latency</a></li>
<li><a href="Nyquist%E2%80%93Shannon_sampling_theorem" title="Nyquist–Shannon sampling theorem">Nyquist–Shannon theorem</a></li>
<li><a href="Sampling_(signal_processing)" title="Sampling (signal processing)">Sampling</a></li>
<li><a href="Silence_compression" title="Silence compression">Silence compression</a></li>
<li><a href="Sound_quality" title="Sound quality">Sound quality</a></li>
<li><a href="Speech_coding" title="Speech coding">Speech coding</a></li>
<li><a href="Sub-band_coding" title="Sub-band coding">Sub-band coding</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Audio_codec" title="Audio codec">Codec</a><br>parts</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="A-law_algorithm" title="A-law algorithm">A-law</a></li>
<li><a href="%CE%9C-law_algorithm" title="Μ-law algorithm">μ-law</a></li>
<li><a href="Differential_pulse-code_modulation" title="Differential pulse-code modulation">DPCM</a>
<ul><li><a href="Adaptive_differential_pulse-code_modulation" title="Adaptive differential pulse-code modulation">ADPCM</a></li>
<li><a href="Delta_modulation" title="Delta modulation">DM</a></li></ul></li>
<li><a href="Fourier_transform" title="Fourier transform">FT</a>
<ul><li><a href="Fast_Fourier_transform" title="Fast Fourier transform">FFT</a></li></ul></li>
<li><a href="Linear_predictive_coding" title="Linear predictive coding">LPC</a>
<ul><li><a href="Algebraic_code-excited_linear_prediction" title="Algebraic code-excited linear prediction">ACELP</a></li>
<li><a href="Code-excited_linear_prediction" title="Code-excited linear prediction">CELP</a></li>
<li><a href="Log_area_ratio" title="Log area ratio">LAR</a></li>
<li><a href="Line_spectral_pairs" title="Line spectral pairs">LSP</a></li>
<li><a href="Warped_linear_predictive_coding" title="Warped linear predictive coding">WLPC</a></li></ul></li>
<li><a href="Modified_discrete_cosine_transform" title="Modified discrete cosine transform">MDCT</a></li>
<li><a href="Psychoacoustics" title="Psychoacoustics">Psychoacoustic model</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Image_compression" title="Image compression">Image</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Chroma_subsampling" title="Chroma subsampling">Chroma subsampling</a></li>
<li><a href="Coding_tree_unit" title="Coding tree unit">Coding tree unit</a></li>
<li><a href="Color_space" title="Color space">Color space</a></li>
<li><a href="Compression_artifact" title="Compression artifact">Compression artifact</a></li>
<li><a href="Image_resolution" title="Image resolution">Image resolution</a></li>
<li><a href="Macroblock" title="Macroblock">Macroblock</a></li>
<li><a href="Pixel" title="Pixel">Pixel</a></li>
<li><a href="Peak_signal-to-noise_ratio" title="Peak signal-to-noise ratio">PSNR</a></li>
<li><a href="Quantization_(image_processing)" title="Quantization (image processing)">Quantization</a></li>
<li><a href="Standard_test_image" title="Standard test image">Standard test image</a></li>
<li><a href="Texture_compression" title="Texture compression">Texture compression</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Methods</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Chain_code" title="Chain code">Chain code</a></li>
<li><a href="Discrete_cosine_transform" title="Discrete cosine transform">DCT</a></li>
<li><a href="Deflate" title="Deflate">Deflate</a></li>
<li><a href="Fractal_compression" title="Fractal compression">Fractal</a></li>
<li><a href="Karhunen%E2%80%93Lo%C3%A8ve_theorem" class="mw-redirect" title="Karhunen–Loève theorem">KLT</a></li>
<li><a href="Pyramid_(image_processing)" title="Pyramid (image processing)">LP</a></li>
<li><a href="Run-length_encoding" title="Run-length encoding">RLE</a></li>
<li><a href="Wavelet_transform" title="Wavelet transform">Wavelet</a>
<ul><li><a href="Daubechies_wavelet" title="Daubechies wavelet">Daubechies</a></li>
<li><a href="Discrete_wavelet_transform" title="Discrete wavelet transform">DWT</a></li>
<li><a href="Embedded_zerotrees_of_wavelet_transforms" title="Embedded zerotrees of wavelet transforms">EZW</a></li>
<li><a href="Set_partitioning_in_hierarchical_trees" title="Set partitioning in hierarchical trees">SPIHT</a></li></ul></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Data_compression#Video" title="Data compression">Video</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bit_rate" title="Bit rate">Bit rate</a>
<ul><li><a href="Average_bitrate" title="Average bitrate">ABR</a></li>
<li><a href="Constant_bitrate" title="Constant bitrate">CBR</a></li>
<li><a href="Variable_bitrate" title="Variable bitrate">VBR</a></li></ul></li>
<li><a href="Display_resolution" title="Display resolution">Display resolution</a></li>
<li><a href="Film_frame" title="Film frame">Frame</a></li>
<li><a href="Frame_rate" title="Frame rate">Frame rate</a></li>
<li><a href="Video_compression_picture_types" title="Video compression picture types">Frame types</a></li>
<li><a href="Interlaced_video" title="Interlaced video">Interlace</a></li>
<li><a href="Video#Characteristics_of_video_streams" title="Video">Video characteristics</a></li>
<li><a href="Video_quality" title="Video quality">Video quality</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Video_codec" title="Video codec">Codec</a><br>parts</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Discrete_cosine_transform" title="Discrete cosine transform">DCT</a></li>
<li><a href="Differential_pulse-code_modulation" title="Differential pulse-code modulation">DPCM</a></li>
<li><a href="Deblocking_filter" title="Deblocking filter">Deblocking filter</a></li>
<li><a href="Lapped_transform" title="Lapped transform">Lapped transform</a></li>
<li>Motion
<ul><li><a href="Motion_compensation" title="Motion compensation">Compensation</a></li>
<li><a href="Motion_estimation" title="Motion estimation">Estimation</a></li>
<li><a href="Motion_vector" class="mw-redirect" title="Motion vector">Vector</a></li></ul></li>
<li><a href="Wavelet_transform" title="Wavelet transform">Wavelet</a>
<ul><li><a href="Daubechies_wavelet" title="Daubechies wavelet">Daubechies</a></li>
<li><a href="Discrete_wavelet_transform" title="Discrete wavelet transform">DWT</a></li></ul></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Information_theory" title="Information theory">Theory</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Compressed_data_structure" title="Compressed data structure">Compressed data structures</a>
<ul><li><a href="Compressed_suffix_array" title="Compressed suffix array">Compressed suffix array</a></li>
<li><a href="FM-index" title="FM-index">FM-index</a></li></ul></li>
<li><a href="Entropy_(information_theory)" title="Entropy (information theory)">Entropy</a></li>
<li><a href="Information_theory" title="Information theory">Information theory</a>
<ul><li><a href="Timeline_of_information_theory" title="Timeline of information theory">Timeline</a></li></ul></li>
<li><a href="Kolmogorov_complexity" title="Kolmogorov complexity">Kolmogorov complexity</a></li>
<li><a href="Prefix_code" title="Prefix code">Prefix code</a></li>
<li><a href="Quantization_(signal_processing)" title="Quantization (signal processing)">Quantization</a></li>
<li><a href="Rate%E2%80%93distortion_theory" title="Rate–distortion theory">Rate–distortion</a></li>
<li><a href="Redundancy_(information_theory)" title="Redundancy (information theory)">Redundancy</a></li>
<li><a href="Data_compression_symmetry" title="Data compression symmetry">Symmetry</a></li>
<li><a href="Smallest_grammar_problem" title="Smallest grammar problem">Smallest grammar problem</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Community</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Hutter_Prize" title="Hutter Prize">Hutter Prize</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">People</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mark_Adler" title="Mark Adler">Mark Adler</a></li>
<li><a href="Phil_Katz" title="Phil Katz">Phil Katz</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-12-06" href="https://en.wikipedia.org/wiki/?title=Reassignment_method&amp;oldid=1261421533">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>